package com.bingbing.back.service;

import com.bingbing.back.dto.MajorInfoDto;
import com.bingbing.back.po.MajorInfo;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface MajorInfoService {

    /**
     * 不分页
     * @param dto
     * @return
     */
    List<MajorInfo> showAll(MajorInfoDto dto);
    /**
     * 按照给定信息：专业名称、专业层次、专业大类，专业小类，是否人气排序
     * 搜索相应专业 分页处理
     * @param dto
     * @return
     */
    PageInfo<MajorInfo> search(int pageNum, int pageSize, MajorInfoDto dto);

    /**
     * 根据本科或专科，返回其包含的大类名称
     * @param majorLevel
     * @return
     */
    List<MajorInfoDto> searchByLevel(String majorLevel);
    /**
     * 根据大类名称返回包含的小类名称
     * @param className 大类名称
     * @return 包含的小类名称majorSections的list数组
     */
    List<MajorInfoDto> searchByClassName(String className);

    /**
     * 根据人气值推荐专业
     * @return
     */
    List<MajorInfo> recommendMajor();

    /**
     * 根据dataId搜索具体某个专业
     * @param dataId
     * @return
     */
    MajorInfoDto showMajorById(int dataId);

    /**
     * 按照专业dataId增加相应人气值
     * @param dataId 专业dataId
     * @param val 增加人气值
     * @return
     */
    void addClout(int dataId, int val);
}
